package com.woniu.mgr.util;

import org.springframework.beans.BeanUtils;

import java.util.ArrayList;
import java.util.Collection;
import java.util.List;

/**
 * Bean的属性复制
 * @author liwei
 *
 */
public class BeanCopyUtil {
	
	/**
	 * 复制单个对象
	 * @param source  被复制的对象
	 * @param type  需要转换的类型
	 * @return
	 */
	public static <T> T copyObject(Object source,Class<T> type) {
		T obj = null;
		if(source != null) {
			try {
				obj = type.newInstance();
			} catch (InstantiationException | IllegalAccessException e) {
				e.printStackTrace();
			}
			BeanUtils.copyProperties(source, obj);
		}
		return obj;
	}
	
	/**
	 * 复制集合对象
	 * @param source  被复制的对象集合
	 * @param type  需要转换的集合里面对象类型
	 * @return
	 */
	public static <T> List<T> copyList(@SuppressWarnings("rawtypes") Collection source,Class<T> type) {
		List<T> lists = new ArrayList<>();
		if(source != null && source.size() > 0) {
			for(Object obj : source) {
				try {
					T t = type.newInstance();
					BeanUtils.copyProperties(obj, t);
					lists.add(t);
				} catch (InstantiationException | IllegalAccessException e) {
					e.printStackTrace();
				}
				
			}
		}
		return lists;
	}

	
	
	
	
	
	
	
}
